Property-Driven Fence Insertion Using Reorder Bounded Model Checking
نویسندگان
چکیده
Modern architectures provide weaker memory consistency guarantees than sequential consistency. These weaker guarantees allow programs to exhibit behaviours where the program statements appear to have executed out of program order. Fortunately, modern architectures provide memory barriers (fences) to enforce the program order between a pair of statements if needed. Due to the intricate semantics of weak memory models, the placement of fences is challenging even for experienced programmers. Too few fences lead to bugs whereas overuse of fences results in performance degradation. This motivates automated placement of fences. Tools that restore sequential consistency in the program may insert more fences than necessary for the program to be correct. Therefore, we propose a property-driven technique that introduces reorderbounded exploration to identify the smallest number of program locations for fence placement. We implemented our technique on top of CBMC; however, in principle, our technique is generic enough to be used with any model checker. For a parametric program that increases in size, our technique not only solves more instances but also yields a 17x speedup for the largest instance solved by an earlier approach. We report experimental results on relevant benchmarks and compare with earlier approaches.
منابع مشابه
Brief Announcement: Fence Insertion for Straight-line Programs is in P
Relaxed memory models reorder instructions in the interest of performance. However, reordering of instructions can jeopardize correctness and memory fences should be used to preserve specic orders. Programs that carry explicit fences are over-specied as they are tied to specic architectures and memory models and are hence unportable. On the other hand, once the program species the high-leve...
متن کاملProperty Driven Three-Valued Model Checking on Hybrid Automata
In this paper, we present a three-valued property driven model checking algorithm for the logic CTL on hybrid automata. The technique of multivalued model checking for hybrid automata aims at combining the advantages of classical methods based either on the preorder of simulation or on bounded reachability. However, as originally defined, it relies on the preliminary definition of special abstr...
متن کاملComputing Over-Approximations with Bounded Model Checking
Bounded Model Checking (BMC) searches for counterexamples to a property φ with a bounded length k. If no such counterexample is found, k is increased. This process terminates when k exceeds the completeness threshold CT (i.e., k is sufficiently large to ensure that no counterexample exists) or when the SAT procedure exceeds its time or memory bounds. However, the completeness threshold is too l...
متن کاملMending Fences with Self-Invalidation and Self-Downgrade
Cache coherence protocols based on self-invalidation and self-downgrade have recently seen increased popularity due to their simplicity, potential performance efficiency, and low energy consumption. However, such protocols result in memory instruction reordering, thus causing extra program behaviors that are often not intended by the programmers. We propose a novel formal model that captures th...
متن کاملExperimental Analysis of Different Techniques for Bounded Model Checking
Bounded model checking (BMC) is a procedure that searches for counterexamples to a given property through bounded executions of a non-terminating system. This paper compares the performance of SAT-based, BDD-based and explicit state based BMC on benchmarks drawn from commercial designs. Our experimental framework provides a uniform and comprehensive basis to evaluate each of these approaches. T...
متن کامل